home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / extras / programm / gemfsc20 / gemfsc20.lzh / GEMFBIND / VDI@NOTE.S < prev    next >
Text File  |  1993-03-16  |  5KB  |  104 lines

  1.  
  2. ;*========================================================================
  3. ;*
  4. ;* VDIFAST Public Domain VDI bindings.
  5. ;*
  6. ;*========================================================================
  7.  
  8. ;*************************************************************************
  9. ;* VDINOTES.
  10. ;*
  11. ;* There is nothing executable in this module.  The library's version
  12. ;* number is here, and can be queried at runtime by looking at global
  13. ;* variable '_vdif_version', which is defined below.  I don't know why
  14. ;* anyone would want to do that.
  15. ;*
  16. ;* Mostly this is a collection of notes about the library and its source.
  17. ;*
  18. ;* The following little blurb will never get linked into an application
  19. ;* unless the program specifically references the version variable's name.
  20. ;*
  21. ;*  Maintenance:
  22. ;*   02/06/89     - v1.1 Added 'vdiV0110' global label, so I can quickly
  23. ;*                  check the version # from an aln link-map.
  24. ;*************************************************************************
  25.  
  26.           globl     _vdif_version
  27. _vdif_version:
  28.           globl     vdiV0180
  29. vdiV0180:
  30.           dc.w      $0180               ;* version 01.80
  31.           dc.b      'VDIFAST v1.80'
  32.           even
  33.  
  34. ;*************************************************************************
  35. ;*
  36. ;*  Notes about the VDIFAST VDI bindings.
  37. ;*
  38. ;*  The object code & library are in 'DRI' format, & are thus compatible
  39. ;*  with Alcyon C, Sozobon C, and any other compiler/linker which can handle
  40. ;*  'DRI-compatible' object files (v0.92:  Laser C compatible).
  41. ;*
  42. ;*  When used with the Atari 'aln' linker, you must first use the 'DOINDEX'
  43. ;*  program to create a .NDX index file for the library.
  44. ;*
  45. ;*  These bindings were written to be both fast, and frugal of memory.
  46. ;*  In most cases, when a pointer to an array (such as x/y coordinates for
  47. ;*  polylines) is passed to the bindings, that pointer is placed directly
  48. ;*  into the VDI 'contrl' structure.  When an intermediate array is needed
  49. ;*  (such as for the text functions), stack space will be used for temporary
  50. ;*  storage.  Since no global data space or bss space is allocated by these
  51. ;*  bindings, the amount of runtime memory used is about 1/2 of the size of
  52. ;*  the object modules which are linked into your program.  (DRI object
  53. ;*  modules before linking are roughly twice the size they will be after
  54. ;*  linking.)  Thus, if you write a program that causes every module in the
  55. ;*  library to be linked, the overhead added to your program will be less
  56. ;*  than 5k.
  57. ;*
  58. ;*  You do NOT need to define the typical VDI arrays 'contrl', 'intin',
  59. ;*  'intout', 'ptsin', and 'ptsout' in your C program!  (At least, not for
  60. ;*  the use of these bindings...you may certainly use variables/arrays of
  61. ;*  those names if you find it convenient to do so for some reason.)
  62. ;*
  63. ;*  The stack space used by these bindings in processing a typical VDI call
  64. ;*  is 30-50 bytes.  For the text-oriented calls, it will be approximately
  65. ;*  40 bytes plus twice the length of the string to be input/output.  In
  66. ;*  other words, a normal stack size should work just fine (I generally use
  67. ;*  a 1k stack without problems).
  68. ;*
  69. ;*  The library contains no global symbols other than the function names
  70. ;*  themselves.  There are no external references within any of the modules;*
  71. ;*  each is self-contained.  It should never be necessary to make multiple
  72. ;*  passes of the linker to resolve all references, and it shouldn't matter
  73. ;*  where the VDIFAST name appears on the linker's command line.
  74. ;*
  75. ;*  This code was developed using the Digital Research publication _VDI
  76. ;*  Programmer's Guide_.  There may be differences between the DRI docs
  77. ;*  and the Abacus _GEM Programmer's Guide_, especially in the inquiry
  78. ;*  functions.  Sorry, but it seemed safest to use the DRI docs as the
  79. ;*  definitive source.
  80. ;*
  81. ;*  There are some (obscure) functions which are not supported, notably
  82. ;*  the cell_array functions, and the VDI Escapes related to the Polaroid
  83. ;*  Palette Processor (whatever that is) and metafiles (and GDOS stuff).
  84. ;*
  85. ;*  There is now, however, a "roll your own" function, vdicall(), that
  86. ;*  lets you access VDI functions that are not in the bindings by coding
  87. ;*  your own control, intin, and other interface arrays, and then passing
  88. ;*  pointers to them to the vdicall() function.  (added 07/18/91).
  89. ;*
  90. ;*  This code was developed under Atari's MadMac assembler, and probably
  91. ;*  won't assemble correctly on any other assembler. To convert this code
  92. ;*  to another assembler, the following notes may be of use:
  93. ;*
  94. ;*    All comments are preceded by ';*', most assemblers use the '*' for a
  95. ;*    comment delimiter.  Using an editor, do a 'search and replace all'
  96. ;*    to change ';*' to '*;'.  Please don't change them to just an '*',
  97. ;*    because trying to change them back will also catch computed constants
  98. ;*    such as 'move.l   4*SIZE,d0'.
  99. ;*
  100. ;*************************************************************************
  101.  
  102. ;       end of code
  103.  
  104.